﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Logging;

using Microsoft.Cci;
using PartialExpressionCompleter.Query;

namespace PartialExpressionCompleter.Experiment
{
    abstract class AssignmentExperiment : ExpressionExperiment<IAssignment>
    {
        public AssignmentExperiment(IAssembly unit)
            : base(unit)
        { }

        protected abstract void DoAssignmentAction(QueryContext<IAssignment> context);
        protected override void DoExpressionAction(QueryContext<IAssignment> context)
        {
            DoAssignmentAction(context);
        }
        protected override IEnumerable<SavedExpression<IAssignment>>
            GetAllSavedExpressions(AbstractTypeInferencer inferencer)
        {
            return inferencer.GetAllAssignments();
        }
    }
}
